#ifndef GRAPHCALCULATOR_H
#define GRAPHCALCULATOR_H

#include <QWidget>

#include<QGraphicsScene>
#include<QDebug>
#include "exprtk.h"  // 包括exprtk

namespace Ui {
class Graphcalculator;
}

class Graphcalculator : public QWidget
{
    Q_OBJECT

public:
    explicit Graphcalculator(QWidget *parent = nullptr);
    ~Graphcalculator();

private:
    Ui::Graphcalculator *ui;
    QGraphicsScene *scene;  // 场景用于绘制图形
    exprtk::symbol_table<double> symbolTable;
    exprtk::expression<double> expression;
    exprtk::parser<double> parser;
    double x;  // x变量，用于绘图

    bool axesDrawn; // 标记是否已经绘制了坐标轴

    void drawAxes(); // 用于绘制坐标轴的方法


private slots:
    void plotFunction();
    void clearPlot();
};

#endif // GRAPHCALCULATOR_H
